package model

import (
	"github.com/streadway/handy/atomic"
)

const (
	TempObjTick = 0
	TempMsgTick = 1
	TempOmsgTick = 2
	TempEventTick = 3
	TempCopyTTick = 4
	TempObjAtick = 5
	TempObjOTick = 6
	TempObjMotionTick = 7
	TempObjImpacTick = 8
	TempObjUpdaTezoneTick = 9
	TempObjAiBaseTick = 10
	TempObjAiControlTick = 11
	TempObjAiMoveTotick = 12
	TempObjAiJuagestateTick = 13
	TempCheckAreaTick = 14

)

type Scene struct {
	TempTTickNum    int
	curThreadId     string
	MEfficiencyData []*TickTimeData
	MnSceneId       int
	MSceneData      *SceneData
	MCopySceneData  *CopySceneData
	MZoneList       []*Zone
	MRect           []*Zone
	MNPlayerNum     int
	MNSublineNum    int
	MSublineTimer   *NowTimer
	MScanInfo       *ScanInfo
	MZoneInfo       *ZoneInfo
	MNextNpcIndex   atomic.Int
	MNSceneStatus   SceneState
	LastTickTimer   int64
	MMoonMap        *MoonMap
	MAEventAreaList []*EventArea
	MATickCount     *SceneTickCount
	SceneNpcDataMap map[string]*SceneNpcData
	Boss            *NpcPlayer
}

func NewScene() *Scene {
	tempTTickNum := TempObjAiJuagestateTick + 2
	return &Scene{
		TempTTickNum: tempTTickNum,
		MEfficiencyData: make([]*TickTimeData,tempTTickNum),
	}
}
